package com.lw.demo;

import freemarker.template.Configuration;
import freemarker.template.Template;
import org.springframework.util.ResourceUtils;

import java.io.File;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;

public class TestFreeMarker {

    public static void main(String[] args) throws Exception {
        // 第一步：Configration需要版本Configuration.getVersion()已经不推荐使用了，
        // 所以通过Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS获取默认版本
        // 或知道当前版本情况Configuration.VERSION_2_3_30
        Configuration cfg = new Configuration(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS);
        // 第二步：设置模板文件所在的路径。
        // 读取templates文件夹路径下的文件---learn-freemarker/target/classes/static
        String path = ResourceUtils.getURL("classpath:templates").getPath();
        cfg.setDirectoryForTemplateLoading(new File(path));
        // 第三步：加载一个模板，创建一个模板对象。
        Template template = cfg.getTemplate("hello.ftl");
        // 第四步：创建一个模板使用的数据集，可以是pojo也可以是map。一般是Map。
        Map map = new HashMap();
        map.put("hello", "Hello FreeMarker templates!");
        // 第五步：创建一个Writer对象（可以是用于字符串存储解析，也可以是创建一FileWriter对象，指定生成的文件名new FileWriter(new File("/hello.html")))
        StringWriter out = new StringWriter();
        // 第六步：调用模板对象的process方法输出文件
        template.process(map, out);
        String resultStr = out.toString();
        // 第七步：关闭流
        out.close();
        System.out.println(resultStr);
        
    }
}
